# -*- coding: latin-1 -*-
import sys
from PyQt4.QtGui import QDialog,  QMessageBox
from PyQt4.QtCore import SIGNAL,  Qt,  QObject

sys.path.append("../")

from vista.clientes_vista import Ui_clientesVista
from altaDuenio_controlador import altaDuenio_controlador
from modelo.duenio_modelo import duenio_modelo

DEBUG=False

class clientes_controlador(Ui_clientesVista): 
    def __init__(self):
        self.widget = QDialog()
        self.setupUi(self.widget)
        # Connections
        self.widget.connect(self.lineEditBuscar, SIGNAL("textChanged(QString)"), 
                            self.buscar)
        self.widget.connect(self.pushButtonDarAlta, SIGNAL("clicked()"), 
                            self.altaDuenio)
        self.widget.connect(self.tableViewClientes, SIGNAL("doubleClicked(QModelIndex)"), self.editarDuenio)
        self.widget.connect(self.tableViewClientes, SIGNAL("clicked(QModelIndex)"), self.activarBaja)
        self.widget.connect(self.pushButtonBaja, SIGNAL("clicked()"),  
                            self.bajaDuenio)
        self.duenio = duenio_modelo()
        self.tableViewClientes.setModel(self.duenio.model)
        self.tableViewClientes.setColumnHidden(self.duenio.ID, True)
        self.ajustarDatosTabla()
        
    def ajustarDatosTabla(self):
        if DEBUG: print "Reajustando los datos de la tabla"
        self.tableViewClientes.resizeColumnsToContents()
        self.tableViewClientes.setHorizontalHeader(self.tableViewClientes.horizontalHeader().setStretchLastSection(True))
    
    def buscar(self):
        self.duenio.buscarLike('apellido', self.lineEditBuscar.text() )
    
    def activarBaja(self):
        self.pushButtonBaja.setEnabled(True)   
        
    def altaDuenio(self):
        if DEBUG : print "apreto el boton alta duenio" 
        self.ui = altaDuenio_controlador(self.duenio, -1)
        self.ui.widget.setAttribute(Qt.WA_DeleteOnClose)
        self.ui.widget.showMaximized()
        QObject.connect(self.ui.widget,  SIGNAL("destroyed()"), self.ajustarDatosTabla)  
        
    def editarDuenio(self):
        if DEBUG : print "apreto para editar el duenio"
        seleccionado=self.tableViewClientes.selectedIndexes()[0]
        self.ui = altaDuenio_controlador(self.duenio, seleccionado)
        self.ui.widget.setAttribute(Qt.WA_DeleteOnClose)
        self.ui.widget.showMaximized() 
        self.ajustarDatosTabla()
        QObject.connect(self.ui.widget,  SIGNAL("destroyed()"), self.ajustarDatosTabla)  
    
    def bajaDuenio(self): 
        seleccionado=self.tableViewClientes.selectedIndexes()[0]
        record = self.duenio.model.record(seleccionado.row())
        nombreDuenio = record.value("nombre").toString() 
        apellidoDuenio = record.value("apellido").toString()
        respuesta = QMessageBox.question(None, "Message", 
        "Esta seguro que desea borrar al cliente "+apellidoDuenio+", " +nombreDuenio+"?","No","Si","" ,  False,  True)
        if respuesta: 
            idDuenio = record.value("id_duenio").toInt() [0]
            self.duenio.eliminarDuenio(idDuenio)
            self.pushButtonBaja.setEnabled(False)
            self.ajustarDatosTabla()
